package com.mg.observerdemo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    //设置处理类（类似于handler对象 处理事件用的，在哪里处理 就在哪里写这个
    NotificationCenter.NotificationCenterObserver notificationCenterObserver=new NotificationCenter.NotificationCenterObserver() {
        //在这里处理订阅的事件回调：例如事件名叫text，想要在第二页上点击按钮关闭第二页
        // 并让第一页上的TextView上显示第二页的EditText里面输入的内容，而且不用带返回值跳转
        @Override
        public void onReceive(String eventName, Object userInfo) {
            if (eventName.equals("text")){
                textView.setText(userInfo.toString());
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView= (TextView) findViewById(R.id.txt);

        //既然是观察者 就一定要订阅 观察者模式那个类里面有详细备注,可以同时订阅多个事件，但是有订阅一定要解除
        //订阅text事件
        NotificationCenter.defaultCenter().addObserver(notificationCenterObserver,"text");


    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //有订阅就有解除订阅（解除订阅的原因是 怕这个类被销毁 或者退出了 依然接受到事件导致内存泄露）
        NotificationCenter.defaultCenter().removeObserver(notificationCenterObserver,"text");
    }

    public void btn1(View view){

        //跳转到activity2
        startActivity(new Intent(this,Main2Activity.class));

    }

}
